﻿/*----------------------------------------------------------------
// Copyright (C) 2011 苏富特健康科技
// 版权所有。 
//
// 文件名：SessionHandler.cs
// 文件功能描述：Session操作帮助
//
// 
// 创建标识：2012-06-25 张强
//
// 变更标识：｛日期｝ ｛变更人｝
// 变更描述：｛变更详情｝
//
//----------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

namespace WebHelper.SessionHandler
{
    /// <summary>
    /// Session操作
    /// </summary>
    public class SessionHandler : ISessionHandler
    {


        #region 创建会话

        /// <summary>
        /// 创建会话
        /// </summary>
        /// <typeparam name="T">会话信息类型</typeparam>
        /// <param name="key">会话识别码</param>
        /// <param name="value">会话信息</param>
        /// <param name="timeOut">超时时间、分钟</param>
        public void CreateSession<T>(string key, T value, int timeOut)
        {
            HttpContext.Current.Session[key] = value;
            if (timeOut == 0)
            {
                timeOut = 20;
            }
            HttpContext.Current.Session.Timeout = timeOut;
        }

        #endregion


        #region 获取会话信息

        /// <summary>
        /// 获取会话信息
        /// </summary>
        /// <typeparam name="T">会话信息类型</typeparam>
        /// <param name="key">会话识别码</param>
        /// <returns>会话信息</returns>
        public T GetSession<T>(string key)
        {
            return (T)HttpContext.Current.Session[key];
        }

        #endregion


        #region 清除会话

        /// <summary>
        /// 清除会话
        /// </summary>
        /// <param name="key">会话识别码</param>
        public void ClearSession(string key)
        {
            HttpContext.Current.Session.Remove(key);
        }

        #endregion


    }
}
